package com.example.abstractfactory.cluster;

import lombok.extern.slf4j.Slf4j;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;

/**
 * @version 1.0.0
 * @className: EGM
 * @description: 模拟一个集群服务，但是方法名与各业务系统中使用的方法名不同。
 * 有点像你mac，我用win。做一样的事，但有不同的操作。
 * @author: rosszhang
 * @date: 2022/6/8 17:18
 */
@Slf4j
public class EGM {
    private Map<String, String> dataMap = new ConcurrentHashMap<>();

    public String gain(String key) {
        log.info("EGM获取缓存数据key:{}", key);
        return dataMap.get(key);
    }

    public void set(String key, String value) {
        log.info("EGM写入缓存数据key:{}，val:{}", key, value);
        dataMap.put(key, value);
    }

    public void setEx(String key, String value, long timeout, TimeUnit timeUnit) {
        log.info("EGM写入缓存数据key:{}，val:{},timeout:{},timeUnit:{}", key, value, timeout, timeUnit);
        dataMap.put(key, value);
    }

    public void delete(String key) {
        log.info("EGM删除数据，key:{}", key);
        dataMap.remove(key);
    }
}
